package com.yuke.cloud.service.smc.entity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
import javax.persistence.*;

@ApiModel(value="com.yuke.cloud.service.smc.entity.ShopGoods")
@Table(name = "shop_goods")
public class ShopGoods {
    /**
     * 主键，自增
     */
    @Id
    @Column(name = "shop_goods_id")
    @ApiModelProperty(value="shopGoodsId主键，自增")
    private Long shopGoodsId;

    /**
     * 店铺ID，与店铺表关联
     */
    @Column(name = "shop_id")
    @ApiModelProperty(value="shopId店铺ID，与店铺表关联")
    private Long shopId;

    public String getShopName() {
        return shopName;
    }

    public void setShopName(String shopName) {
        this.shopName = shopName;
    }

    @Transient
    @ApiModelProperty(value="shopName店铺Name，与店铺表关联")
    private String shopName;

    /**
     * 商品编号，与商品规格表关联
     */
    @Column(name = "product_id")
    @ApiModelProperty(value="productId商品编号，与商品规格表关联")
    private Long productId;

    public String getSpecName() {
        return specName;
    }

    public void setSpecName(String specName) {
        this.specName = specName;
    }

    @Transient
    @ApiModelProperty(value="specName商品名称，与商品规格表关联")
    private String specName;

    public Long getCategoryId() {
        return categoryId;
    }

    public void setCategoryId(Long categoryId) {
        this.categoryId = categoryId;
    }

    @Transient
    @ApiModelProperty(value="categoryId")
    private Long categoryId;

    /**
     * 商品状态，0：未知；1：已申请贩卖，正在审核中；2：已通过贩卖申请，可正常贩卖；3：未通过贩卖申请，无法贩卖；4：被平台禁止贩卖；5：重新开通。
     */
    @Column(name = "goods_status")
    @ApiModelProperty(value="goodsStatus商品状态，0：未知；1：已申请贩卖，正在审核中；2：已通过贩卖申请，可正常贩卖；3：未通过贩卖申请，无法贩卖；4：被平台禁止贩卖；5：重新开通。")
    private Byte goodsStatus;

    /**
     * 商品是否上架，0：下架，1：上架
     */
    @Column(name = "is_alive")
    @ApiModelProperty(value="isAlive商品是否上架，0：下架，1：上架")
    private Boolean isAlive;

    /**
     * 平台供应价格，价格单位为分
     */
    @Column(name = "supply_price")
    @ApiModelProperty(value="supplyPrice平台供应价格，价格单位为分")
    private Integer supplyPrice;

    /**
     * 自定义售价，价格单位为分
     */
    @Column(name = "sale_price")
    @ApiModelProperty(value="salePrice自定义售价，价格单位为分")
    private Integer salePrice;

    /**
     * 可售卖的库存量
     */
    @Column(name = "stock_count")
    @ApiModelProperty(value="stockCount可售卖的库存量")
    private Integer stockCount;

    /**
     * 排序，数值越小越靠前
     */
    @ApiModelProperty(value="sort排序，数值越小越靠前")
    private Integer sort;

    /**
     * 贩卖申请时间
     */
    @Column(name = "create_time")
    @ApiModelProperty(value="createTime贩卖申请时间")
    private Date createTime;

    public Integer getNum() {
        return num;
    }

    public void setNum(Integer num) {
        this.num = num;
    }

    @Transient
    @ApiModelProperty(value="销量")
    private Integer num;

    /**
     * 获取主键，自增
     *
     * @return shop_goods_id - 主键，自增
     */
    public Long getShopGoodsId() {
        return shopGoodsId;
    }

    /**
     * 设置主键，自增
     *
     * @param shopGoodsId 主键，自增
     */
    public ShopGoods setShopGoodsId(Long shopGoodsId) {
        this.shopGoodsId = shopGoodsId;
        return this;
    }

    /**
     * 获取店铺ID，与店铺表关联
     *
     * @return shop_id - 店铺ID，与店铺表关联
     */
    public Long getShopId() {
        return shopId;
    }

    /**
     * 设置店铺ID，与店铺表关联
     *
     * @param shopId 店铺ID，与店铺表关联
     */
    public ShopGoods setShopId(Long shopId) {
        this.shopId = shopId;
        return this;
    }

    /**
     * 获取商品编号，与商品规格表关联
     *
     * @return product_id - 商品编号，与商品规格表关联
     */
    public Long getProductId() {
        return productId;
    }

    /**
     * 设置商品编号，与商品规格表关联
     *
     * @param productId 商品编号，与商品规格表关联
     */
    public ShopGoods setProductId(Long productId) {
        this.productId = productId;
        return this;
    }

    /**
     * 获取商品状态，0：未知；1：已申请贩卖，正在审核中；2：已通过贩卖申请，可正常贩卖；3：未通过贩卖申请，无法贩卖；4：被平台禁止贩卖；5：重新开通。
     *
     * @return goods_status - 商品状态，0：未知；1：已申请贩卖，正在审核中；2：已通过贩卖申请，可正常贩卖；3：未通过贩卖申请，无法贩卖；4：被平台禁止贩卖；5：重新开通。
     */
    public Byte getGoodsStatus() {
        return goodsStatus;
    }

    /**
     * 设置商品状态，0：未知；1：已申请贩卖，正在审核中；2：已通过贩卖申请，可正常贩卖；3：未通过贩卖申请，无法贩卖；4：被平台禁止贩卖；5：重新开通。
     *
     * @param goodsStatus 商品状态，0：未知；1：已申请贩卖，正在审核中；2：已通过贩卖申请，可正常贩卖；3：未通过贩卖申请，无法贩卖；4：被平台禁止贩卖；5：重新开通。
     */
    public ShopGoods setGoodsStatus(Byte goodsStatus) {
        this.goodsStatus = goodsStatus;
        return this;
    }

    /**
     * 获取商品是否上架，0：下架，1：上架
     *
     * @return is_alive - 商品是否上架，0：下架，1：上架
     */
    public Boolean getIsAlive() {
        return isAlive;
    }

    /**
     * 设置商品是否上架，0：下架，1：上架
     *
     * @param isAlive 商品是否上架，0：下架，1：上架
     */
    public ShopGoods setIsAlive(Boolean isAlive) {
        this.isAlive = isAlive;
        return this;
    }

    /**
     * 获取平台供应价格，价格单位为分
     *
     * @return supply_price - 平台供应价格，价格单位为分
     */
    public Integer getSupplyPrice() {
        return supplyPrice;
    }

    /**
     * 设置平台供应价格，价格单位为分
     *
     * @param supplyPrice 平台供应价格，价格单位为分
     */
    public ShopGoods setSupplyPrice(Integer supplyPrice) {
        this.supplyPrice = supplyPrice;
        return this;
    }

    /**
     * 获取自定义售价，价格单位为分
     *
     * @return sale_price - 自定义售价，价格单位为分
     */
    public Integer getSalePrice() {
        return salePrice;
    }

    /**
     * 设置自定义售价，价格单位为分
     *
     * @param salePrice 自定义售价，价格单位为分
     */
    public ShopGoods setSalePrice(Integer salePrice) {
        this.salePrice = salePrice;
        return this;
    }

    /**
     * 获取可售卖的库存量
     *
     * @return stock_count - 可售卖的库存量
     */
    public Integer getStockCount() {
        return stockCount;
    }

    /**
     * 设置可售卖的库存量
     *
     * @param stockCount 可售卖的库存量
     */
    public ShopGoods setStockCount(Integer stockCount) {
        this.stockCount = stockCount;
        return this;
    }

    /**
     * 获取排序，数值越小越靠前
     *
     * @return sort - 排序，数值越小越靠前
     */
    public Integer getSort() {
        return sort;
    }

    /**
     * 设置排序，数值越小越靠前
     *
     * @param sort 排序，数值越小越靠前
     */
    public ShopGoods setSort(Integer sort) {
        this.sort = sort;
        return this;
    }

    /**
     * 获取贩卖申请时间
     *
     * @return create_time - 贩卖申请时间
     */
    public Date getCreateTime() {
        return createTime;
    }

    /**
     * 设置贩卖申请时间
     *
     * @param createTime 贩卖申请时间
     */
    public ShopGoods setCreateTime(Date createTime) {
        this.createTime = createTime;
        return this;
    }
}